package com.hd.base.dao;

import java.util.List;


public interface BaseMapper<T> {

	/**
	 * 保存
	 * 
	 * @param model
	 */
	void save(T model);

	/**
	 * 批量保存
	 * 
	 * @param models
	 */
	void save(List<T> models);

	/**
	 * 根据id删除
	 * 
	 * @param id
	 */
	void deleteById(String id);

	/**
	 * 根据对象删除
	 * 
	 * @param model
	 */
	void deleteByCondition(T model);

	/**
	 * 批量删除
	 * 
	 * @param ids
	 */
	void deleteByIds(String ids);

	/**
	 * 修改
	 * 
	 * @param model
	 */
	void update(T model);

	/**
	 * 根据id查询
	 * 
	 * @param id
	 * @return
	 */
	T queryById(String id);

	/**
	 * 查询所有信息
	 * 
	 * @return
	 */
	List<T> queryByList();

	/**
	 * 条件查询
	 * 
	 * @param model
	 * @return
	 */
	List<T> findByCondition(T model);

	/**
	 * 根据条件查询对象
	 * 
	 * @param fieldName
	 * @param value
	 * @return
	 */
	T findByObject(String fieldName, Object value) throws Exception;

	/**
	 * 查询一条
	 * 
	 * @param model
	 * @return
	 */
	T selectOne(T model);

	/**
	 * 根据实体中的属性查询总数
	 * 
	 * @param model
	 * @return
	 */
	int queryCount(T model);

	/**
	 * 按照condition条件查询数量
	 * 
	 * @param condition
	 * @return
	 */
	int queryCountByCondition(Object condition);

}
